A typical computer network, such as an internet protocol (IP)-based network, supports communications between various network devices. The devices may, for example, include personal computers, laptops, workstations, personal-digital assistants (PDAs), mobile telephones, wireless devices, network-ready appliances, file servers, print servers, routers, or other devices. For two devices to communicate, applications executing on the devices create an application-layer session and establish a connection between the devices for the session using a communication protocol, such as the transmission control protocol (TCP). The applications may then exchange application-layer (that is, OSI Layer Seven) data over the connection using packets. Devices, referred to as routers, forward packets associated with the connection through the physical network that connects the devices.
Various kinds of processing of the application-layer data exchanged within an application-layer communication session can be done by intermediate devices placed along the path taken by packets that carry the application-layer data. Some examples of the kinds of processing currently performed on packet flows between devices include data compression, encryption and decryption, application-layer acceleration, anti-virus processing, and intrusion detection and prevention.
Network devices that apply services to application-layer data may experience memory bottlenecks during heavy loading conditions due to limited system memory and large packet buffering requirements for certain services.